#ifndef COCHES_H_INCLUDED
#define COCHES_H_INCLUDED
#include "Coche.h"


class Coches{
    private:
        struct Nodo {
            Coche * info;
            Nodo * hizq;
            Nodo * hder;
        };
        Nodo * ABB;
        void destruirArbol (Nodo * &);
        // destruye todo el contenido del árbol
        bool perteneceEnArbol (Nodo *, String);
        // indica si existe el coche con la matricula ingresada
        void insertEnArbol (Nodo * &, Coche *);
        // inserta el nuevo coche en el árbol
        Coche * obtenerEnArbol (Nodo *, String);
        // obtiene el coche con la matricula ingresada
        void cargarIterador (Nodo *, Iterador * &);
        // carga el iterador recorriendo el árbol en orden

    public:
        Coches();
        void insert(Coche *);
        bool member(String);
        Coche * find(String);
        Iterador * listadoCoches();
        ~Coches();
};


#endif // COCHES_H_INCLUDED
